package cn.parker.excel.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * <pre>
 * 导出excel注解
 * </pre>
 *
 * @author Parker
 * @version 1.0.0
 * @since 2025-07-29 0:46
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ExportExcel {
    /**
     * 文件名，支持SpEL表达式
     */
    String fileName() default "export";

    /**
     * 工作表名称，支持SpEL表达式
     */
    String sheetName() default "sheet";

    /**
     * 数据模型类
     */
    Class<?> modelClass() default void.class;

    /**
     * 模板，支持SpEL表达式
     */
    String template() default "";

    /**
     * 是否合并单元格
     */
    boolean cellMerge() default false;

    /**
     * 是否压缩，默认zip
     */
    boolean compress() default false;

    /**
     * sheet数据大小，默认0，表示所有数据都写入一个sheet中；大于0，表示每个sheet最多写入多少行数据，超出后自动创建一个新sheet
     */
    int sheetDataSize() default 0;
}
